$(function() {
    buttenControl();
    $('#tb_ads').bootstrapTable({
        method: 'GET',                      //请求方式（*）
        // url: 'list.json',         //请求后台的URL（*）
        url:projectPath +  "/base/parking/spaces/list",
        contentType: 'application/x-www-form-urlencoded',
        toolbar: '#toolbar',                //工具按钮用哪个容器
        striped: true,                      //是否显示行间隔色
        cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        pagination: true,                   //是否显示分页（*）
        sortable: false,                     //是否启用排序
        sortOrder: "asc",                   //排序方式
        search:false,
        queryParams: queryParams,//传递参数（*）
        sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
        pageNumber: 1,                       //初始化加载第一页，默认第一页
        pageSize: 10,                       //每页的记录行数（*）
        pageList: [10,20,50],        //可供选择的每页的行数（*）
        strictSearch: true,
        clickToSelect: true,                //是否启用点击选中行
        uniqueId: "id",
        showColumns: true,                  //是否显示所有的列
        showRefresh: true,                  //显示刷新按钮
        showToggle: true,
        minimumCountColumns: 2,             //最少允许的列数
        singleSelect:true,
        // height:500,
        paginationPreText: "上一页",
        paginationNextText: "下一页",
        columns: [
            {field: 'check', checkbox: true},
            {field: '', title: '序号', align: 'center', formatter: function (value, row, index) {
                var pageSize=$('#tb_ads').bootstrapTable('getOptions').pageSize;//通过表的#id 可以得到每页多少条
                var pageNumber=$('#tb_ads').bootstrapTable('getOptions').pageNumber;//通过表的#id 可以得到当前第几页
                return pageSize * (pageNumber - 1) + index + 1;    //返回每条的序号： 每页条数 * （当前页 - 1 ）+ 序号
            }},
            {field: 'uuid', title: '主键', align: 'center', visible:false},
            {field: 'name', title: '停车位名称',align: 'center',formatter: function (value, row, index) {
                return "<div style='width:150px;min-width: 150px;max-width: 150px;margin: auto;'><a href='javascript:;' onclick='parkspace_detail(\""+row.uuid+"\")'>" + value + "</a></div>";
            }},
            {field: 'parkno', title: '停车位编码',align: 'center',formatter: function (value, row, index) {
                return "<div style='width:150px;min-width: 150px;max-width: 150px;margin: auto;'>" + value + "</div>";
            }},
            {field: 'parkingAreaName', title: '所属停车区',align: 'center',formatter: function (value, row, index) {
                return "<div style='width:120px;min-width: 120px;max-width: 120px;margin: auto;'>" + value + "</div>";
            }},
            {field: 'stationName', title: '所属充电站',align: 'center',formatter: function (value, row, index) {
                return "<div style='width:320px;min-width: 320px;max-width: 320px;margin: auto;'>" + value + "</div>";
            }},
            {field: 'createdat', title: '创建时间', align: 'center',formatter: function (value, row, index) {
                if(value == "" || value == null){
                    value="";
                }else{
                    value = getLocalTime(value);
                };
                return "<div style='width:150px;min-width: 150px;max-width: 150px;margin: auto;'>" + value + "</div>";
            }},
        ],
        responseHandler: function (obj) {
            return {
                total:obj.data.total,
                rows:obj.data.data
            }
        }
    });
});

/*页面查询功能*/
$("#btnQuery").click(function(){
    $('#tb_ads').bootstrapTable('refresh', {url: projectPath+"/base/parking/spaces/list",pageNumber:1});
});

$("#btnEmpty").on("click",function () {
    $("#stationQuery").attr("uuid","");
})


/*
update:fanchao
date:2018-4-3
新增修改删除功能修改(原有功能不可用)
*/

/*列表查询需要参数*/
function queryParams() {
    var filterinfo = {};
    filterinfo.offset = (this.pageNumber-1)*this.pageSize;
    filterinfo.limit = this.pageSize;

    if ($('#parkingSpaceNameForQry').val() != '') {// 停车位名称
        filterinfo.name = $("#parkingSpaceNameForQry").val();
    };
    if ($('#parkingSpaceCodeForQry').val() != '') {// 停车位编码
        filterinfo.parkNo = $("#parkingSpaceCodeForQry").val();
    };
    if ($('#parkSpaceQueryList').val() != '') {// 所属停车区
        filterinfo.parkingAreaUuid = $("#parkSpaceQueryList").val();
    };
    if ($("#stationQuery").attr("uuid") != '') {// 所属充电站
        filterinfo.stationUuid = $("#stationQuery").attr("uuid");
    };

    return filterinfo;
};

// 新增
$("#btnAdd").on("click",function(){
    valiForm();
    $("#stationClick").prop("disabled",false);
    var index = layer.open({
        type: 1,
        title: "新增停车位",
        shadeClose: true,
        shade: 0.3,
        area: ['90%', '60%'],
        skin: 'layui-layer-rims',
        content: $(".addParkSpace"),
        closeBtn:1,
        shadeClose:false,
        fixed:false,
        resize:true,
        maxmin:true,
        btn:['确定','关闭'],
        yes: function(index, layero){   /*弹窗中点击确定之后回调*/
            valiForm();
            var bootstrapValidator = $(".bootstrapValidators").data('bootstrapValidator');
            bootstrapValidator.validate();
            if(!bootstrapValidator.isValid()){
                layerAlert.errorMessage("请填写信息");
                return;
            };
            $.ajax({
                url:projectPath+  "/base/parking/spaces",
                type:'put',
                data:JSON.stringify(getDataForUpdate()),
                contentType:"application/json",
                dataType:"json",
                success:function(data){
                    if(data.code == "0"){
                        layerAlert.successMessage("新建成功","");
                    }else{
                        layerAlert.errorMessage("新建失败");
                    }
                },
                error:function(data){
                    layerAlert.errorMessage("数据错误");
                }
            });
            layer.close(index);
            clearDetail();
            valiForm();
            $(".bootstrapValidators").data('bootstrapValidator').destroy();
            $('.bootstrapValidators').data('bootstrapValidator', null);
        },
        btn2:function () {
            clearDetail();
            valiForm();
            $(".bootstrapValidators").data('bootstrapValidator').destroy();
            $('.bootstrapValidators').data('bootstrapValidator', null);
        },
        cancel:function () {
            clearDetail();
            valiForm();
            $(".bootstrapValidators").data('bootstrapValidator').destroy();
            $('.bootstrapValidators').data('bootstrapValidator', null);
        }
    });
});
/*修改需要数据*/
function getDataForUpdate(){
    debugger;
    var data={};
    data.uuid = $("#uuid").val();// 停车位uuid
    data.name = $("#name").val();// 停车位名称
    data.parkno = $("#parkno").val();// 停车位编码
    data.stationuuid = $("#station").attr("uuid"); // 充电站uuid
    data.parkingareauuid = $("#parkSpaceList").val();// 所属停车区uuid
    return data;
}

// 修改
$("#btnRevise").on("click",function(){
    valiForm();
    $("#stationClick").prop("disabled",false);
    var ids = getSelectedDeleteParams();
    if (ids != '' && ids != null) {
        var index = layer.open({
            type: 1,
            title: "修改停车位",
            shadeClose: true,
            shade: 0.3,
            area: ['90%', '60%'],
            skin: 'layui-layer-rims',
            content: $(".addParkSpace"),
            closeBtn:1,
            shadeClose:false,
            fixed:false,
            resize:true,
            maxmin:true,
            btn:['确定','关闭'],
            success:function () {
                getParkareaInfo(ids);
            },
            yes: function(){   /*弹窗中点击确定之后回调*/
                valiForm();
                var bootstrapValidator = $(".bootstrapValidators").data('bootstrapValidator');
                bootstrapValidator.validate();
                if(!bootstrapValidator.isValid()){
                    layerAlert.errorMessage("请填写信息");
                    return;
                };
                $.ajax({
                    url:projectPath+  "/base/parking/spaces",
                    type:'put',
                    data:JSON.stringify(getDataForUpdate()),
                    contentType:"application/json",
                    dataType:"json",
                    success:function(data){
                        if(data.code == "0"){
                            layerAlert.successMessage("修改成功","");
                        }else{
                            layerAlert.errorMessage("修改失败");
                        }
                    },
                    error:function(data){
                        layerAlert.errorMessage("数据错误");
                    }
                });
                layer.close(index);
                clearDetail();
                valiForm();
                $(".bootstrapValidators").data('bootstrapValidator').destroy();
                $('.bootstrapValidators').data('bootstrapValidator', null);
            },
            btn2:function () {
                clearDetail();
                valiForm();
                $(".bootstrapValidators").data('bootstrapValidator').destroy();
                $('.bootstrapValidators').data('bootstrapValidator', null);
            },
            cancel:function () {
                clearDetail();
                valiForm();
                $(".bootstrapValidators").data('bootstrapValidator').destroy();
                $('.bootstrapValidators').data('bootstrapValidator', null);
            }
        });
    } else {
        layerAlert.errorMessage("您的选择为空");
    };
});

// 删除
$("#btnDelete").on("click",function(){
    var ids = getSelectedDeleteParams();
    if (ids != '' && ids != null) {
        layerAlert.confirmMessage("确定要删除?",projectPath + "/base/parking/spaces/del?id="+ids, function(data){
            if(data.code == "0"){
                layerAlert.successMessage("操作成功","");
            }else{
                layerAlert.errorMessage("出错了");
            };
        });
    }else{
        layerAlert.errorMessage("您的选择为空");
    }
});

// 导出
$("#btnExport").on("click",function(){
    layer.open({
        type: 1,
        title: "选择导出页数",
        shadeClose: true,
        shade: 0.3,
        move :false,
        area: ['300px', '250px'],
        skin: 'layui-layer-rims',
        content: $(".export_dialog"),
        btn:['确定'],
        closeBtn:1,
        success:function(){
            $('.export_dialog').empty();
            //var endPage=pageCount;
            //var startPage=1;
            var str=[
                '<div class="form-group" style="margin-top:30px;margin-left: 10px;">',
                '<label class="label-width3">起始页:</label><input type="text"  class="form-control" id="start_page" value="1" />',
                '</div>',
                '<div class="form-group" style="margin-top: 10px;margin-left: 10px;">',
                '<label class="label-width3">结束页:</label><input type="text"  class="form-control" id="end_page" value="1000"/>',
                '</div>',
            ].join('');
            $('.export_dialog').append(str);
        },
        close:function(){
            $('.export_dialog').remove(str);
        },
        btn1:function(){
            alert("导出成功");
        }
    });
});

// 详情查看
function parkspace_detail(uuid){
    $("#stationClick").prop("disabled",true);
    layer.open({
        type: 1,
        title: "停车位详情",
        shadeClose: true,
        shade: 0.3,
        area: ['90%', '60%'],
        skin: 'layui-layer-rims',
        content: $(".addParkSpace"),
        closeBtn:1,
        shadeClose:false,
        fixed:false,
        resize:true,
        maxmin:true,
        btn:['关闭'],
        success:function(){
            getParkareaInfo(uuid);
        },
        cancel:function(){
            clearDetail();
        },
        btn1:function(){
            clearDetail();
        }
    });
}

/*详情查看数据获取*/
function getParkareaInfo(uuid){
    $.ajax({
        url:projectPath+"//base/parking/spaces/detail?id="+uuid,
        type:"POST",
        dataType:"json",
        success:function(result){
            var data = result.data;
            $("#uuid").val(data.uuid);// 停车位uuid
            $("#name").val(data.name);// 停车位名称
            $("#parkno").val(data.parkno);// 停车位编码



            $("#station").val(data.stationName);
            $("#station").attr("uuid",data.stationuuid);
            $("#parkSpaceList").html('<option value="'+data.parkingareauuid+'">'+data.parkingAreaName+'</option>')
        },
        error:function(){
            layerAlert.errorMessage("不好意思，数据出错啦！");
        }
    });
};

$("#stationClickQuery").on("click",function () {
    var index = layer.open({
        type: 1,
        title: "充电站列表",
        shadeClose: true,
        shade: 0.3,
        area: ['95%', '90%'],
        skin: 'layui-layer-rims',
        content: $(".stationQuery"),
        closeBtn:1,
        shadeClose:false,
        fixed:false,
        resize:true,
        maxmin:true,
        btn:['确定','取消'],
        success:function () {
            initTab();
        },
        yes:function(){
            var uuid = "";
            var p_n = $('#station_ads').bootstrapTable('getData');
            if (p_n != null && p_n.length > 0) {
                var len = $('#station_ads').bootstrapTable('getData').length;
                for (var i = 0; i < len; i++) {
                    if ($('#station_ads').bootstrapTable('getData')[i].check == true) {
                        uuid = $('#station_ads').bootstrapTable('getData')[i].uuid; // 站uuid
                        stationname = $('#station_ads').bootstrapTable('getData')[i].stationname; // 站名称
                    };
                };
                if (uuid != '' && uuid != null) {
                    $("#stationQuery").val(stationname); // 站名称
                    $("#stationQuery").attr("uuid",uuid); // 站uuid
                } else {
                    layerAlert.errorMessage("您的选择为空");
                }
            };
            getParkAreaListQuery();
            layer.close(index);
        },
        btn2:function () {

        },
        cancel:function(){

        }
    })
});
// 查询条件没有选站时的弹窗提示
$("#parkSpaceQueryList").on("click",function () {
    if($(this).val() == null){
        layerAlert.errorMessage("请选择所属充电站");
    };
});
function getParkAreaListQuery () {
    $.ajax({
        url: projectPath+  "/base/stations/qryParkingAreaListForStation?uuid=" + $("#stationQuery").attr("uuid"),
        type: 'POST',
        dataType: 'json',
        success:function (data) {
            $("#parkSpaceQueryList").empty();
            $("#parkSpaceQueryList").append("<option value=''>--请选择--</option>");
            var parkspaceList=data.data;
            $.each(parkspaceList,function(index, item){
                $("#parkSpaceQueryList").append("<option value='"+item.uuid+"'>"+item.name+"</option>");
            });
        },
        error:function () {
            layerAlert.errorMessage("出错了");
        }
    });
};



$("#stationClick").on("click",function () {
    valiForm();
    $(".bootstrapValidators").data('bootstrapValidator').destroy();
    $('.bootstrapValidators').data('bootstrapValidator', null);
    var index = layer.open({
        type: 1,
        title: "充电站列表",
        shadeClose: true,
        shade: 0.3,
        area: ['95%', '90%'],
        skin: 'layui-layer-rims',
        content: $(".stationQuery"),
        closeBtn:1,
        shadeClose:false,
        fixed:false,
        resize:true,
        maxmin:true,
        btn:['确定','取消'],
        success:function () {
            initTab();
        },
        yes:function(){
            var uuid = "";
            var p_n = $('#station_ads').bootstrapTable('getData');
            if (p_n != null && p_n.length > 0) {
                var len = $('#station_ads').bootstrapTable('getData').length;
                for (var i = 0; i < len; i++) {
                    if ($('#station_ads').bootstrapTable('getData')[i].check == true) {
                        uuid = $('#station_ads').bootstrapTable('getData')[i].uuid; // 站uuid
                        stationname = $('#station_ads').bootstrapTable('getData')[i].stationname; // 站名称
                    };
                };
                if (uuid != '' && uuid != null) {
                    $("#station").val(stationname); // 站名称
                    $("#station").attr("uuid",uuid); // 站uuid
                } else {
                    layerAlert.errorMessage("您的选择为空");
                }
            };

            $("#parkAreaNameInfo").val("");
            $("#parkingfee").val("");
            getParkAreaList();
            layer.close(index);
        },
        btn2:function () {

        },
        cancel:function(){

        }
    })
});
function initTab(){
    $('#station_ads').bootstrapTable({
        method: 'POST',                      //请求方式（*）
        //url: 'list.json',         //请求后台的URL（*）
        url: projectPath+"/base/stations/list",
        contentType: 'application/x-www-form-urlencoded',
        //toolbar: '#toolbar',                //工具按钮用哪个容器
        striped: true,                      //是否显示行间隔色
        cache: true,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        pagination: true,                   //是否显示分页（*）
        sortable: true,                     //是否启用排序
        sortOrder: "asc",                   //排序方式
        search:false,
        queryParams: dataQueryParams,//传递参数（*）
        sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
        pageNumber: 1,                       //初始化加载第一页，默认第一页
        pageSize: 10,                       //每页的记录行数（*）
        pageList: [3, 10,20],        //可供选择的每页的行数（*）
        strictSearch: true,
        clickToSelect: true,                //是否启用点击选中行
        uniqueId: "id",
        //showRefresh: true,                  //显示刷新按钮
        //showToggle: true,
        //showColumns: true,                  //是否显示所有的列
        minimumCountColumns: 6,             //最少允许的列数
        singleSelect:true,
        // height:500,
        paginationPreText: "上一页",
        paginationNextText: "下一页",
        columns: [
            {field: 'check', checkbox: true},
            {field: '', title: '序号', align: 'center', formatter: function (value, row, index) {
                var pageSize=$('#tb_ads').bootstrapTable('getOptions').pageSize;//通过表的#id 可以得到每页多少条
                var pageNumber=$('#tb_ads').bootstrapTable('getOptions').pageNumber;//通过表的#id 可以得到当前第几页
                return pageSize * (pageNumber - 1) + index + 1;    //返回每条的序号： 每页条数 * （当前页 - 1 ）+ 序号
            }},
            {field: 'uuid', title: '主键', align: 'center', visible:false},
            {field: 'stationname', title: '充电站名称',  align: 'center',formatter: function (value, row, index) {
                return '<div style="width:250px;min-width: 250px;max-width: 250px;margin: auto;"><a href="javascript:;" onclick="showStationInfo(\'detail\',\''+row.uuid+'\')">' + value + '</a></div>';
            }},
            {field: 'stationno', title: '站编码',align: 'center',formatter: function (value, row, index) {
                return "<div style='width:150px;min-width: 150px;max-width: 150px;margin: auto;'>" + value + "</div>";
            }},
            {field: 'isthird', title: '是否第三方',align: 'center',formatter: function (value, row, index) {
                if(value == "0" || value == "1"){
                    return "<div style='width:30px;min-width: 30px;max-width: 30px;margin: auto;'>否</div>";
                }else{
                    return "<div style='width:30px;min-width: 30px;max-width: 30px;margin: auto;'>是</div>";
                };
            }},
            {field: 'stationstatus', title: '站状态',  align: 'center',formatter: function (value, row, index) {
                if(value == "2"){
                    return "<div style='width:60px;min-width: 60px;max-width: 60px;margin: auto;'>待投运</div>";
                }else if(value == "3"){
                    return "<div style='width:60px;min-width: 60px;max-width: 60px;margin: auto;'>运行</div>";
                }else if(value == "8"){
                    return "<div style='width:60px;min-width: 60px;max-width: 60px;margin: auto;'>维护</div>";
                }else if(value == "10"){
                    return "<div style='width:60px;min-width: 60px;max-width: 60px;margin: auto;'>停运</div>";
                }else if(value == "11"){
                    return "<div style='width:60px;min-width: 60px;max-width: 60px;margin: auto;'>退运</div>";
                }else{
                    return "";
                }
            }},
            {field: 'rundate', title: '投运时间', align: 'center',formatter: function (value, row, index) {
                if(value == "" || value == null){
                    value="";
                }else{
                    value = getLocalTime(value);
                };
                return "<div style='width:150px;min-width: 150px;max-width: 150px;margin: auto;'>" + value + "</div>";
            }},
            {field: 'createdat', title: '最近更新时间',align: 'center',sortable:true,order:'desc',formatter: function (value, row, index) {
                if(row.updatedat != '' && row.updatedat != null){
                    value = row.updatedat;
                }
                if(value == "" || value == null){
                    value="";
                }else{
                    value = getLocalTime(value);
                }
                return "<div style='width:150px;min-width: 150px;max-width: 150px;margin: auto;'>" + value + "</div>";
            }}
        ],
        responseHandler: function (obj) {
            return {
                total:obj.data.total,
                rows:obj.data.data
            }
        }
    });
};
function dataQueryParams() {
    // var filterinfo = new Object();
    var filterinfo = {};
    if ($('#stationName').val() != '') {// 充电站名
        filterinfo.name = $("#stationName").val();
    };
    filterinfo.offset = (this.pageNumber-1)*this.pageSize;
    filterinfo.limit = this.pageSize;
    return filterinfo;
};
$("#btnQueryStation").on("click",function () {
    $('#station_ads').bootstrapTable('refresh', {url: projectPath+"/base/stations/list"});
});
// 根据站查区
function getParkAreaList () {
    $.ajax({
        url: projectPath+  "/base/stations/qryParkingAreaListForStation?uuid=" + $("#station").attr("uuid"),
        type: 'POST',
        dataType: 'json',
        success:function (data) {
            $("#parkSpaceList").empty();
            $("#parkSpaceList").append("<option value=''>--请选择--</option>");
            var parkspaceList=data.data;
            $.each(parkspaceList,function(index, item){
                $("#parkSpaceList").append("<option value='"+item.uuid+"'>"+item.name+"</option>");
            });
        },
        error:function () {
            layerAlert.errorMessage("出错了");
        }
    });
};

function clearDetail(){
    $(".addParkSpace input,select").val("");
    $("#parkSpaceList").empty();
}

function valiForm(){
    $(".bootstrapValidators").bootstrapValidator({
        message: 'This value is not valid',
        feedbackIcons: {
            //valid: 'glyphicon glyphicon-ok',
            //invalid: 'glyphicon glyphicon-remove',
            //validating: 'glyphicon glyphicon-refresh'
        },
        fields:{
            parkSpaceName:{
                validators:{
                    notEmpty: {
                        message: '请填写停车位'
                    },
                },
            },
            stationName:{
                validators:{
                    notEmpty:{
                        message:"请选择充电站"
                    }
                }
            },
            parkAreaName:{
                validators:{
                    notEmpty:{
                        message:"请选择停车区"
                    }
                }
            },
        }
    });
}

/**
 * zhangYiHang 18.3.20
 * 页面按钮控制
 * @constructor
 */
function buttenControl() {
    var urls = paramUrlByButten();
    if(urls.length>0){
        for (var i in urls){
            if('update' == urls[i]){
                $("#btnRevise").show();
            } else if('insert' == urls[i]){
                $("#btnAdd").show();
            }else if('delete' == urls[i]){
                $("#btnDelete").show()
            }else if('excel' == urls[i]){
                $("#btnExport").show()
            }
        }
    }
}

